
//
//  EmoticonViewModel.swift
//  表情键盘
//
//  Created by 焦林生 on 15/11/15.
//  Copyright © 2015年 焦林生. All rights reserved.
//

import UIKit

class EmoticonViewModel {
    
    //由于表情符号使用的过于频繁 为了避免重复加载plist 可以将表情的视图模型修改为单例
    static let sharedViewModel = EmoticonViewModel()
    //表情包数组
    lazy var packages = [EmoticonPackage]()
    
    private init () {
    
        loadEmoticons()
    }
    
    //加载表情包数据
    private func loadEmoticons() {
    
        //0 添加 最近分组
        packages.append(EmoticonPackage(dict: ["group_name_cn": "最近A"]))
        
        //1 emoticons.plist  的路径
        let path = NSBundle.mainBundle().pathForResource("emoticons.plist", ofType: nil, inDirectory: "Emoticons.bundle")!
        
        //2 加载字典
        let dict = NSDictionary(contentsOfFile: path)
        
        //3 从字典中获得 id 的数组 - valueForKey 直接获取字典数组中的 key 对应的数组
        let array = (dict!["packages"] as! NSArray).valueForKey("id") as! [String]
        //4 遍历数组
        for id in array {
        
            //1 info.plist 路径
            let infoPath = NSBundle.mainBundle().pathForResource("info.plist", ofType: nil, inDirectory: "Emoticons.bundle/\(id)")!
            
            //2 加载info.plist  (一个独立的表情包)
            let infoDict = NSDictionary(contentsOfFile: infoPath) as! [String: AnyObject]
            
            //3 建立package 模型并且添加到数组
            packages.append(EmoticonPackage(dict: infoDict))
            
            
        }
    }
}
